<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>
<script>
  function fn() {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve(10);
      }, 3000);
    });
  }
  function fn1() {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve(20);
      }, 2000);
    });
  }
  //   // Promise.all 当所有的异步都执行完成之后，才会返回结果
  //   Promise.all([fn(), fn1()]).then((res) => {
  //     console.log(res);
  //   });

  //   // Promise.race 当多个请求有一个完成的，就会返回结果。

  //   Promise.race([fn(), fn1()]).then((res) => {
  //     console.log(res);
  //   });

  // await 出现必须有 async  async 也可 await
  // async 和 await 会把一个 普通的函数变成 promise 函数
  async function add() {
    let num = await fn();
    let num1 = await fn1();
    return num + num1;
    // let num = 0;
    // fn().then((res) => {
    //   num = res;
    // });
    // let num1 = 0;
    // fn1().then((res) => {
    //   num1 = res;
    // });
    // return num + num1;
  }
  add().then((res) => {
    console.log(res);
  });
  //   console.log(add());
</script>
